Make a new project and add a form. To the form add a command button. Copy the following code into the form's General Declarations procedure:

'Declarations

Private Declare Function RegOpenKeyEx Lib "advapi32" Alias _
"RegOpenKeyExA" (ByVal hKey As Long, ByVal lpSubKey As String, _
ByVal dwReserved As Long, ByVal samDesired As Long, phkResult _
As Long) As Long

Private Declare Function RegQueryValueEx Lib "advapi32" Alias _
"RegQueryValueExA" (ByVal hKey As Long, ByVal lpValueName$, _
ByVal lpdwReserved As Long, lpdwType As Long, lpData As Any, _
lpcbData As Long) As Long

Private Declare Function RegCloseKey Lib "advapi32" (ByVal hKey As Long) As Long

Const HKEY_CURRENT_CONFIG As Long = &H80000005

Function RegGetString$(hInKey As Long, ByVal subkey$, ByVal valname$)

    'Needed declarations
    Dim RetVal$, hSubKey As Long, dwType As Long, SZ As Long
    Dim R As Long
    
    RetVal$ = ""
    
    Const KEY_ALL_ACCESS As Long = &HF0063
    Const ERROR_SUCCESS As Long = 0
    Const REG_SZ As Long = 1
    
    'Open the key
    R = RegOpenKeyEx(hInKey, subkey$, 0, KEY_ALL_ACCESS, hSubKey)
    
    If R <> ERROR_SUCCESS Then GoTo Quit_Now
    
    SZ = 256: v$ = String$(SZ, 0)
    R = RegQueryValueEx(hSubKey, valname$, 0, dwType, ByVal v$, SZ)
    
    If R = ERROR_SUCCESS And dwType = REG_SZ Then
        RetVal$ = Left$(v$, SZ - 1)
    Else
        RetVal$ = "--Not String--"
    End If
    
    If hInKey = 0 Then
        R = RegCloseKey(hSubKey)
    End If
    
Quit_Now:
    RegGetString$ = RetVal$
End Function

Private Sub Command1_Click()
    Dim GetCurrPrinter As String

    GetCurrPrinter = RegGetString$(HKEY_CURRENT_CONFIG, _
    "System\CurrentControlSet\Control\Print\Printers", "Default")
    MsgBox GetCurrPrinter
End Sub

 

